package com.webside.front.common.mapper;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.webside.front.common.model.BSeries;
import com.webside.util.PageUtil;

public interface BSeriesMapper {
	 /**
	  * 本mapper后续开发中作为模板的接口。下面的接口尽量少用
	  * map条件包括：（前台暂时只需要这些，需要更多条件时直接加）
	  * （备注：本接口作为提供基础查询的模板，复杂查询请写新的接口）
	  * @param condition(
	  * 查询 : id,name,channel,kind,kindName,
	  * 	type,typeName,tag,language,year,
	  * 	area,director,actor,recommendLevel,status,
	  * 	videoClaritys,source
	  * 排序 : updateTime,createTime,score
	  * 分页 : pageSize,pageBegin
	  * )
	  * @return
	  */
	List<BSeries> selectBSeriesByCondition(Map<String, Object> condition);
	
	
	/**
	 * 提供简单的查询条件对象封装
	 * 查询条件BSeries : 
	 * 	id,name,channel,kind,kindName,
	 * 	type,typeName,tag,language,year,
	 * 	area,director,actor,recommendLevel,status,
	 * 	videoClaritys,source
	 * 
	 * 还需传入分页的参数 extends PageUtil 
	 * 	页码pageNum
     * 	分页大小pageSize
     * 	排序字段orderByColumn(updateTime,createTime,score);
	 * 	排序方式orderByType(ASC,DESC);
	 * 
	 * @param bSeries
	 * @return
	 */
	List<BSeries> selectBseriesByPojo(@Param("bSeries")BSeries bSeries);
	
	/**
	 * 根据对象传入条件
	 * 统计总条数
	 * 查询条件BSeries :
	 * 	year type  channel area videoClaritys name
	 * @param bSeries
	 * @return
	 */
	int getProductsCount(@Param("bSeries")BSeries bSeries);
	
	String selectAreaNameById(Integer id);
	
	/*测试
	List<String> selectTest();
	*/
	
	
	
	
	
	
	/**
	 * 根据map中类型及推荐等级查询首页需求
	 * @param condition
	 * @return
	 */
	List<BSeries> selectBSeriesByMapforType(Map<String, Object> condition);
	
	
	
	
	
	
	int deleteByPrimaryKey(Integer id);

    int insert(BSeries record);

    int insertSelective(BSeries record);
    

    BSeries selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(BSeries record);

    int updateByPrimaryKey(BSeries record);
    
    /********************详细页begin*******************************************/

    List<BSeries> selectMayLike(BSeries record);
    List<BSeries> selectMayChannel(BSeries record);
	
    
    
    /********************详细页end*******************************************/
    
    
    /********************首页begin*******************************************/
    //点赞查询
    List<BSeries> selectLikeCount(); 
    //影迷力荐
    List<BSeries> selectByPrimaryALL();
    //猜你喜欢
    List<BSeries> selectByPrimarySelective(BSeries record);
    //激情预告
    List<BSeries> selectByPrimaryTrailer(BSeries record);
    List<BSeries> selectTrailer(BSeries record);
    //卫视同步
     
    List<BSeries> selectByallSatellite(BSeries record);
    List<BSeries> selectSatellite(BSeries record);
    //美剧精选
    List<BSeries> selectAmerican(BSeries record);
   //日韩热播
     List<BSeries> selectByKorea(BSeries record); 
    List<BSeries> selectKorea(BSeries record);
    //佳品有约
    List<BSeries> selectJiapin(BSeries record);
    List<BSeries> selectByJiapin(BSeries record);
    List<BSeries> selectByALLJiapin(BSeries record);
	  
    
    //搜索（名称，导演，主演）
    List<BSeries> selectBySearch(BSeries record);
    //影院大片
    List<BSeries> selectCinema(BSeries record); 
    //动漫剧场 
    List<BSeries> selectByAnimation(BSeries record); 
    List<BSeries> selectAnimation(BSeries record);
    //电视剧榜
    List<BSeries> selectplay(BSeries record);
    List<BSeries>selectHomePlay(BSeries record);
    //电视剧影迷力荐
    List<BSeries>selectByTvplayALL();
    
    //佳品电影榜
    List<BSeries> selectJiapinplay(BSeries record);
    //佳品电影影迷力荐
    List<BSeries>selectByLikeCount();
    
    
    //根据名字电影查询
    List<BSeries> selectTypeName(String type);
    //根据名字电视剧查询
    List<BSeries> selectTVPLAY(String type);
    //根据名字动漫查询
    List<BSeries> selectCARTOON(String type);
    
    /********************首页end*******************************************/

	/**
     * 模糊以及筛选分页查询视频
     * @param record
     * @return
     */
    List<BSeries> searchSeriesByPageVo(@Param("bSeries")BSeries record,@Param("page") PageUtil pageUtil, @Param("sort") String sort);
    
}